library(survminer)
library(survival)
library(magrittr)
library(tidyverse)
library(Seurat)
library(readxl)
library(cowplot)
library(colorblindr)
library(viridis)
library(consensusOV)
library(progeny)

source("_src/global_vars.R")

1 Idea

  1. Observation from SPECTRUM: Endothelial and Fibroblast sub cell types have different compositions across patients, tumor sites and treatment status
  2. TCGA transcriptional sub types reflect cell type composition
  3. Can we use cell type markers defined in SPECTRUM to deconvolute cell type composition in bulk RNA-seq data, and based on this, relate PFS, OS, or treatment response to cell type composition?

2 TCGA data overview

## load data ------------------------------------------------------

file_paths <- list.files("/work/shah/uhlitzf/data/TCGA/OV/htseq", full.names = T)

## sample sheet
sample_tbl <- tibble(`File Name` = paste0(basename(file_paths), ".gz")) %>% 
  left_join(read_tsv("/work/shah/uhlitzf/data/TCGA/OV/gdc_sample_sheet.2020-07-28.tsv"), by = "File Name") %>% 
  set_colnames(str_replace_all(tolower(colnames(.)), " ", "_")) %>% 
  select(case_id, sample_id, file_name)

sample_df <- sample_tbl %>% 
  as.data.frame %>% 
  set_rownames(.$sample_id)

# ## raw counts ---------------------------
# 
# read_c2 <- function(x) select(read_tsv(x, col_names = F), -1)
# count_tbl <- lapply(file_paths, read_c2) %>%
#   bind_cols() %>%
#   set_colnames(sample_tbl$sample_id) %>%
#   mutate(ENSEMBL = read_tsv(file_paths[1], col_names = F)$X1) %>%
#   select(ENSEMBL, everything())
# write_tsv(count_tbl, "/work/shah/uhlitzf/data/TCGA/OV/all_counts.tsv")
# 
# count_tbl <- read_tsv("/work/shah/uhlitzf/data/TCGA/OV/all_counts.tsv")
# count_mat <- as.matrix(select(count_tbl, -1)) %>%
#   set_rownames(count_tbl$ENSEMBL)
# 
# ## normalization ------------------------
# 
# dds <- DESeq2::DESeqDataSetFromMatrix(countData = count_mat, colData = sample_df, design = ~sample_id)
# 
# dds <- DESeq2::estimateSizeFactors(dds)
# write_rds(dds, "/work/shah/uhlitzf/data/TCGA/OV/deseq_obj.rds")
dds <- read_rds("/work/shah/uhlitzf/data/TCGA/OV/deseq_obj.rds")

count_norm <- DESeq2::counts(dds, normalized = T)

## annotation ------------------------------

rownames(count_norm) <- str_split(rownames(count_norm), "\\.") %>% 
  lapply(function(x) x[1]) %>% 
  unlist

gene_symbol <- AnnotationDbi::select(org.Hs.eg.db::org.Hs.eg.db,
                                         keys = rownames(count_norm),
                                         columns = c("ENSEMBL", "SYMBOL", "UNIPROT"),
                                         keytype = "ENSEMBL") %>%
  distinct(SYMBOL, .keep_all = T) %>% 
  distinct(ENSEMBL, .keep_all = T) %>% 
  na.omit() %>% 
  select(-UNIPROT) %>% 
  deframe

count_norm_symbol <- count_norm[names(gene_symbol),]
rownames(count_norm_symbol) <- gene_symbol

## embeddings ----------------------------------

tcga_pca <- prcomp(t(count_norm_symbol))
set.seed(123)
tcga_umap <- uwot::umap(tcga_pca$x[,1:50]) %>% 
  set_colnames(c("UMAP_1", "UMAP_2")) %>% 
  as_tibble() %>% 
  mutate(sample_id = rownames(tcga_pca$x))

# ## consensusOV --------------------------------

# gene_entrez <- AnnotationDbi::select(org.Hs.eg.db::org.Hs.eg.db,
#                                          keys = rownames(count_norm),
#                                          columns = c("ENSEMBL", "ENTREZID"),
#                                          keytype = "ENSEMBL") %>%
#   distinct(ENTREZID, .keep_all = T) %>%
#   distinct(ENSEMBL, .keep_all = T) %>%
#   deframe
# 
# count_norm_entrez <- count_norm[names(gene_entrez),]
# rownames(count_norm_entrez) <- gene_entrez
# 
# covs <- get.subtypes(count_norm_entrez, rownames(count_norm_entrez), method = "consensusOV")
# covs_tbl <- cbind(as.data.frame(covs[[2]]), covs[[1]]) %>%
#   as_tibble(rownames = "sample_id") %>%
#   setNames(c(names(.)[-6], "consensusOV"))
# 
# consensusOV_names <- c(IMR_consensus = "Immunoreactive", MES_consensus = "Mesenchymal", PRO_consensus = "Proliferative", DIF_consensus = "Differentiated")
# covs_tbl <- covs_tbl %>% 
#   mutate(consensusOV = as.character(consensusOV)) %>% 
#   mutate(consensusOV = consensusOV_names[consensusOV])
# write_tsv(covs_tbl, "/work/shah/uhlitzf/data/TCGA/OV/tcga_consensusOV.tsv")
covs_tbl <- read_tsv("/work/shah/uhlitzf/data/TCGA/OV/tcga_consensusOV.tsv")

# ## progeny --------------------------------

gene_hugo <- AnnotationDbi::select(org.Hs.eg.db::org.Hs.eg.db,
                                         keys = rownames(count_norm),
                                         columns = c("ENSEMBL", "SYMBOL"),
                                         keytype = "ENSEMBL") %>%
  distinct(SYMBOL, .keep_all = T) %>%
  distinct(ENSEMBL, .keep_all = T) %>%
  deframe

count_norm_hugo <- count_norm[names(gene_hugo),]
rownames(count_norm_hugo) <- gene_hugo

## compute progeny scores
progeny_tbl <- count_norm_hugo %>%
  progeny %>%
  as.data.frame %>% 
  as_tibble() %>% 
  setNames(paste0(make.names(names(.)), ".pathway")) %>% 
  mutate(sample_id = colnames(count_norm_hugo)) %>% 
  select(sample_id, everything())

## clinical data ----------------------------------

clin_tbl <- read_tsv("/work/shah/uhlitzf/data/TCGA/OV/ov_tcga_pan_can_atlas_2018_clinical_data.tsv") %>% 
  set_colnames(str_replace_all(tolower(colnames(.)), " ", "_")) %>% 
  select(case_id = patient_id, 
         age = diagnosis_age,
         final_pfstm = `progress_free_survival_(months)`,
         final_pfsid = progression_free_status,
         final_ostm = `overall_survival_(months)`,
         final_osid = overall_survival_status) %>% 
  distinct(case_id, .keep_all = T) %>% 
  mutate(final_pfsid = as.numeric(str_remove_all(final_pfsid, ":PROGRESSION|:CENSORED")),
         final_osid = as.numeric(str_remove_all(final_osid, ":DECEASED|:LIVING")))

mut_tbl <- read_tsv("/work/shah/uhlitzf/data/TCGA/OV/TCGA-OV-BRCA-status.tsv") %>% 
  select(case_id = `Patient ID`, BRCA1, BRCA2) %>% 
  mutate(brca_group = case_when(
    BRCA1 == "no alteration" & BRCA2 == "no alteration" ~ "WT",
    BRCA1 != "no alteration" & BRCA2 != "no alteration" ~ "double mut",
    BRCA1 != "no alteration" ~ "BRCA1",
    BRCA2 != "no alteration" ~ "BRCA2"
  ))


## join data for plotting ------------------------

plot_data <- tcga_umap %>% 
  left_join(select(sample_tbl, -file_name), by = "sample_id") %>% 
  left_join(select(covs_tbl, sample_id, consensusOV), by = "sample_id") %>% 
  left_join(clin_tbl, by = "case_id") %>% 
  left_join(mut_tbl, by = "case_id") %>% 
  left_join(progeny_tbl, by = "sample_id")

2.1 Cohort size

The TCGA OV RNA-seq data set consists of bulk RNA-seq data from a cohort of 379 ovarian cancer patients.

plot_data %>% 
  group_by(consensusOV) %>% 
  tally %>% 
  ggplot() + 
  geom_bar(aes(consensusOV, n, fill = consensusOV), stat = "identity")+
  labs(y = "# cases") + 
  scale_fill_manual(values = clrs$consensusOV)

plot_data %>% 
  group_by(brca_group) %>% 
  tally %>% 
  ggplot() + 
  geom_bar(aes(brca_group, n, fill = brca_group), stat = "identity")+
  labs(y = "# cases") +
  scale_fill_manual(values = clrs$brca_group)

2.2 Cohort features

2.2.1 UMAPs

Top 50 PCs were computed on all genes and used as input for UMAP. One dot represents one TCGA case.

p1 <- ggplot(plot_data) +
  geom_point(aes(UMAP_1, UMAP_2, color = consensusOV)) +
  NoAxes() +
  scale_color_manual(values = clrs$consensusOV)

p2 <- ggplot(plot_data) +
  geom_point(aes(UMAP_1, UMAP_2, color = age)) +
  NoAxes() +
  scale_color_viridis_c()

p3 <- ggplot(plot_data) +
  geom_point(aes(UMAP_1, UMAP_2, color = as.logical(final_pfsid))) +
  NoAxes()

p4 <- ggplot(plot_data) +
  geom_point(aes(UMAP_1, UMAP_2, color = brca_group)) +
  scale_color_manual(values = clrs$brca_group) +
  NoAxes()

plot_grid(p1, p2, p3, p4, ncol = 2, align = "hv")

2.2.2 pathway expression

plot_data %>% 
  gather(pathway, value, -c(1:13)) %>% 
  ggplot() +
  geom_boxplot(aes(brca_group, value, color = brca_group)) +
  facet_wrap(~pathway, scales = "free") +
  theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.5)) +
  scale_color_manual(values = clrs$brca_group)

2.3 Survival plots

PFS and OS are overall higher for patients of the immunoreactive subtype.

pfsfit <- survfit(Surv(final_pfstm/12, final_pfsid) ~ consensusOV, data = plot_data)
osfit <- survfit(Surv(final_ostm/12, final_osid) ~ consensusOV, data = plot_data)

ggsurvplot(pfsfit, data = plot_data, 
           palette = setNames(clrs$consensusOV, 
                              paste0("consensusOV=", names(clrs$consensusOV)))) +
  labs(x = "Time [years]",
       y = "PFS")

ggsurvplot(osfit, data = plot_data,
           palette = setNames(clrs$consensusOV, 
                              paste0("consensusOV=", names(clrs$consensusOV)))) +
  labs(x = "Time [years]",
       y = "OS")

3 TCGA gene expression data

The gene expression data can be used to identify potential bio markers for better stratification.

expression_cutoff <- 2

## Cluster signatures from SPECTRUM
marker_tbl_fb <- read_tsv("/work/shah/uhlitzf/data/SPECTRUM/freeze/v7/supplementary_tables/Fibroblast.super_marker_sheet.tsv")
marker_tbl_ml <- read_tsv("/work/shah/uhlitzf/data/SPECTRUM/freeze/v7/supplementary_tables/Myeloid.super_marker_sheet.tsv")
marker_tbl_tc <- read_tsv("/work/shah/uhlitzf/data/SPECTRUM/freeze/v7/supplementary_tables/T.super_marker_sheet_full.tsv")
marker_tbl_cc <- read_tsv("/work/shah/uhlitzf/data/SPECTRUM/freeze/v7/supplementary_tables/Ovarian.cancer.super_marker_sheet.tsv")

cluster_label_names <- c(unlist(lapply(clrs$cluster_label, names), use.names = F), unlist(lapply(clrs$cluster_label_sub, names), use.names = F))

wrap_markers <- . %>%
  .[,colnames(.)[colnames(.) %in% cluster_label_names]] %>% 
  slice(1:10) %>%
  # select(-rank) %>% 
  gather(cluster, gene_id)

markers_tbl <- list(T.cell = wrap_markers(marker_tbl_tc),
                    Fibroblast = wrap_markers(marker_tbl_fb),
                    Myeloid.cell = wrap_markers(marker_tbl_ml),
                    Ovarian.cancer.cell = wrap_markers(marker_tbl_cc)) %>% 
  bind_rows(.id = "cell_type")

gois <- unique(markers_tbl$gene_id)
gois <- gois[gois %in% rownames(count_norm_symbol)]

## filter TCGA data for SPECTRUM markers
full_data <- count_norm_symbol[gois,] %>% 
  as.data.frame %>% 
  as_tibble(rownames = "gene_id") %>% 
  gather(sample_id, exprs, -gene_id) %>% 
  left_join(select(sample_tbl, -file_name), by = "sample_id") %>% 
  left_join(select(covs_tbl, sample_id, consensusOV), by = "sample_id") %>% 
  left_join(clin_tbl, by = "case_id") %>% 
  left_join(mut_tbl, by = "case_id") %>% 
  left_join(markers_tbl, by = "gene_id") %>% 
  mutate(log_exprs = log2(exprs+1)) %>% 
  group_by(gene_id) %>% 
  mutate(mean_exprs = mean(log_exprs, na.rm = T),
         sd_exprs = sd(log_exprs, na.rm = T),
         rel_exprs = (log_exprs-mean_exprs)/sd_exprs,
         cut_exprs = ifelse(rel_exprs < -expression_cutoff, -expression_cutoff, ifelse(rel_exprs > expression_cutoff, expression_cutoff, rel_exprs)))

3.1 SPECTRUM cell type markers in TCGA cohort

Top cluster markers differ in expression with respect to TCGA transcriptional sub type status.

3.1.1 heatmaps

Heatmaps show markers in columns and patients in rows.

heatmap_layers <- list(
  geom_tile(),
  facet_grid(consensusOV~cluster, scales = "free", space = "free"),
  theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.5),
        axis.text.y = element_blank(),
        axis.ticks = element_blank()),
  scale_fill_gradient2(low = "steelblue", high = "red")
)

ggplot(filter(full_data, cell_type == "T.cell"),
       aes(gene_id, sample_id, fill = cut_exprs)) +
  heatmap_layers

ggplot(filter(full_data, cell_type == "Fibroblast"),
       aes(gene_id, sample_id, fill = cut_exprs)) +
  heatmap_layers

ggplot(filter(full_data, cell_type == "Myeloid.cell"),
       aes(gene_id, sample_id, fill = cut_exprs)) +
  heatmap_layers

ggplot(filter(full_data, cell_type == "Ovarian.cancer.cell"),
       aes(gene_id, sample_id, fill = cut_exprs)) +
  heatmap_layers

heatmap_layers <- list(
  geom_tile(),
  facet_grid(brca_group~cluster, scales = "free", space = "free"),
  theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.5),
        axis.text.y = element_blank(),
        axis.ticks = element_blank()),
  scale_fill_gradient2(low = "steelblue", high = "red")
)

ggplot(filter(full_data, cell_type == "T.cell"),
       aes(gene_id, sample_id, fill = cut_exprs)) +
  heatmap_layers

ggplot(filter(full_data, cell_type == "Fibroblast"),
       aes(gene_id, sample_id, fill = cut_exprs)) +
  heatmap_layers

ggplot(filter(full_data, cell_type == "Myeloid.cell"),
       aes(gene_id, sample_id, fill = cut_exprs)) +
  heatmap_layers

ggplot(filter(full_data, cell_type == "Ovarian.cancer.cell"),
       aes(gene_id, sample_id, fill = cut_exprs)) +
  heatmap_layers

### boxplots

cluster_summary <- full_data %>%
  group_by(cluster, sample_id, consensusOV, cell_type) %>%
  summarise(cluster_score = median(rel_exprs, na.rm = T))

# plot_cOV <- function(cOV) {
#   
#   cluster_summary %>% 
#     filter(consensusOV == cOV) %>% 
#     group_by(cluster) %>% 
#     mutate(median = median(cluster_score, na.rm = T)) %>% 
#     ungroup() %>% 
#     arrange(median) %>% 
#     mutate(cluster = ordered(cluster, levels = unique(cluster))) %>% 
#     ggplot(aes(cluster, cluster_score, color = cell_type)) +
#     geom_boxplot() +
#     geom_hline(yintercept = 0, linetype = 2) +
#     scale_color_manual(values = clrs$cell_type) +
#     theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.5)) +
#     labs(title = cOV, x = "", y = "Marker gene score")
#   
# }
# 
# plot_grid(plot_cOV("Immunoreactive"),
#           plot_cOV("Mesenchymal"),
#           plot_cOV("Proliferative"),
#           plot_cOV("Differentiated"), ncol = 2, align = "hv")

3.1.2 score distributions

main_clusters_tbl <- cluster_summary %>% 
  filter(cluster %in% c("M2.CXCL10", "Activated.CAF.TGFb")) %>% 
  select(-cell_type) %>% 
  spread(cluster, cluster_score) %>% 
  mutate(diff_score = Activated.CAF.TGFb - M2.CXCL10) %>% 
  gather(cluster, cluster_score, -c(1:2))

ggplot(main_clusters_tbl) +
  geom_density(aes(cluster_score, color = consensusOV)) +
  scale_color_manual(values = clrs$consensusOV) +
  facet_wrap(~cluster)

4 Marker expression-based patient strata

  • low: 1st expression quartile
  • high: 4th expression quartile
strata_tbl <- full_data %>%
  distinct(gene_id, sample_id, .keep_all = T) %>%
  group_by(gene_id) %>%
  mutate(q25 = quantile(cut_exprs, probs = 0.25, na.rm = T),
         q75 = quantile(cut_exprs, probs = 0.75, na.rm = T),
         strata = ifelse(cut_exprs < q25, "low", ifelse(cut_exprs > q75, "high", "mid"))) %>%
  ungroup

survplot_gene <- function(gene) {
  data_tbl <- filter(strata_tbl, gene_id == gene, strata != "mid")
  data_tbl$final_pfstm <- data_tbl$final_pfstm/12
  fit <- survfit(Surv(final_pfstm, final_pfsid) ~ strata, data = data_tbl)
 ggsurvplot(fit, data = data_tbl, palette = c("red", "steelblue")) +
    labs(x = "Time [years]",
         y = "PFS",
         title = gene)
}

4.1 M2.CXCL10 marker

marker_c <- marker_tbl_ml$M2.CXCL10[marker_tbl_ml$M2.CXCL10 %in% full_data$gene_id][1:10] %>% na.omit()

for(i in 1:length(marker_c)){

  cat('###', marker_c[i],' \n')

  print(survplot_gene(marker_c[i]))

  cat(' \n \n')

}

4.1.1 CXCL10

4.1.2 CXCL11

4.1.3 CCL8

4.1.4 IFIT2

4.1.5 IFIT1

4.1.6 TNFSF10

4.1.7 ISG15

4.1.8 RSAD2

4.1.9 IFIT3

4.1.10 GBP1

4.2 M2.MARCO marker

marker_c <- marker_tbl_ml$M2.MARCO[marker_tbl_ml$M2.MARCO %in% full_data$gene_id][1:10] %>% na.omit()

for(i in 1:length(marker_c)){

  cat('###', marker_c[i],' \n')

  print(survplot_gene(marker_c[i]))

  cat(' \n \n')

}

4.2.1 MT1G

4.2.2 MARCO

4.2.3 MT1X

4.2.4 MT1H

4.2.5 PLIN2

4.2.6 CXCL3

4.2.7 CCL20

4.2.8 FN1

4.2.9 TIMP1

4.2.10 MT2A

4.3 TGFb.CAF marker

marker_c <- marker_tbl_fb$Activated.CAF.TGFb[marker_tbl_fb$Activated.CAF.TGFb %in% full_data$gene_id][1:10] %>% na.omit()

for(i in 1:length(marker_c)){

  cat('###', marker_c[i],' \n')

  print(survplot_gene(marker_c[i]))

  cat(' \n \n')

}

4.3.1 MMP11

4.3.2 CTHRC1

4.3.3 COL11A1

4.3.4 POSTN

4.3.5 CTSK

4.3.6 COL1A2

4.3.7 COL12A1

4.3.8 VCAN

4.3.9 COL1A1

4.3.10 COL6A3

5 session info

devtools::session_info()
## ─ Session info ───────────────────────────────────────────────────────────────
##  setting  value                       
##  version  R version 3.6.2 (2019-12-12)
##  os       Debian GNU/Linux 10 (buster)
##  system   x86_64, linux-gnu           
##  ui       X11                         
##  language (EN)                        
##  collate  en_US.UTF-8                 
##  ctype    en_US.UTF-8                 
##  tz       Etc/UTC                     
##  date     2021-03-22                  
## 
## ─ Packages ───────────────────────────────────────────────────────────────────
##  package              * version    date       lib
##  abind                  1.4-5      2016-07-21 [2]
##  acepack                1.4.1      2016-10-29 [2]
##  annotate               1.64.0     2019-10-29 [2]
##  AnnotationDbi          1.48.0     2019-10-29 [2]
##  ape                    5.3        2019-03-17 [2]
##  assertthat             0.2.1      2019-03-21 [2]
##  backports              1.1.10     2020-09-15 [1]
##  base64enc              0.1-3      2015-07-28 [2]
##  bibtex                 0.4.2.2    2020-01-02 [2]
##  Biobase                2.46.0     2019-10-29 [2]
##  BiocGenerics           0.32.0     2019-10-29 [2]
##  BiocParallel           1.20.1     2019-12-21 [2]
##  bit                    1.1-15.1   2020-01-14 [2]
##  bit64                  0.9-7      2017-05-08 [2]
##  bitops                 1.0-6      2013-08-17 [2]
##  blob                   1.2.0      2019-07-09 [2]
##  broom                  0.7.2      2020-10-20 [1]
##  callr                  3.4.2      2020-02-12 [1]
##  car                    3.0-8      2020-05-21 [1]
##  carData                3.0-4      2020-05-22 [1]
##  caTools                1.17.1.4   2020-01-13 [2]
##  cellranger             1.1.0      2016-07-27 [2]
##  checkmate              2.0.0      2020-02-06 [1]
##  cli                    2.0.2      2020-02-28 [1]
##  cluster                2.1.0      2019-06-19 [3]
##  codetools              0.2-16     2018-12-24 [3]
##  colorblindr          * 0.1.0      2020-01-13 [2]
##  colorspace           * 1.4-2      2019-12-29 [2]
##  consensusOV          * 1.8.1      2019-12-05 [1]
##  cowplot              * 1.0.0      2019-07-11 [2]
##  crayon                 1.3.4      2017-09-16 [1]
##  curl                   4.3        2019-12-02 [2]
##  data.table             1.12.8     2019-12-09 [2]
##  DBI                    1.1.0      2019-12-15 [2]
##  dbplyr                 2.0.0      2020-11-03 [1]
##  DelayedArray           0.12.2     2020-01-06 [2]
##  desc                   1.2.0      2018-05-01 [2]
##  DESeq2                 1.26.0     2019-10-29 [2]
##  devtools               2.2.1      2019-09-24 [2]
##  digest                 0.6.25     2020-02-23 [1]
##  dplyr                * 1.0.2      2020-08-18 [1]
##  ellipsis               0.3.1      2020-05-15 [1]
##  evaluate               0.14       2019-05-28 [2]
##  fansi                  0.4.1      2020-01-08 [2]
##  farver                 2.0.3      2020-01-16 [1]
##  fastmap                1.0.1      2019-10-08 [2]
##  fitdistrplus           1.0-14     2019-01-23 [2]
##  FNN                    1.1.3      2019-02-15 [2]
##  forcats              * 0.5.0      2020-03-01 [1]
##  foreign                0.8-74     2019-12-26 [3]
##  Formula                1.2-3      2018-05-03 [2]
##  fs                     1.5.0      2020-07-31 [1]
##  future                 1.15.1     2019-11-25 [2]
##  future.apply           1.4.0      2020-01-07 [2]
##  gbRd                   0.4-11     2012-10-01 [2]
##  gdata                  2.18.0     2017-06-06 [2]
##  genefilter             1.68.0     2019-10-29 [2]
##  geneplotter            1.64.0     2019-10-29 [2]
##  generics               0.0.2      2018-11-29 [2]
##  GenomeInfoDb           1.22.0     2019-10-29 [2]
##  GenomeInfoDbData       1.2.2      2020-01-14 [2]
##  GenomicRanges          1.38.0     2019-10-29 [2]
##  ggplot2              * 3.3.2      2020-06-19 [1]
##  ggpubr               * 0.4.0      2020-06-27 [1]
##  ggrepel                0.8.1      2019-05-07 [2]
##  ggridges               0.5.2      2020-01-12 [2]
##  ggsignif               0.6.0      2019-08-08 [1]
##  globals                0.12.5     2019-12-07 [2]
##  glue                   1.3.2      2020-03-12 [1]
##  gplots                 3.0.1.2    2020-01-11 [2]
##  graph                  1.64.0     2019-10-29 [1]
##  gridExtra              2.3        2017-09-09 [2]
##  GSEABase               1.48.0     2019-10-29 [1]
##  GSVA                   1.34.0     2019-10-29 [1]
##  gtable                 0.3.0      2019-03-25 [2]
##  gtools                 3.8.1      2018-06-26 [2]
##  haven                  2.3.1      2020-06-01 [1]
##  Hmisc                  4.3-0      2019-11-07 [2]
##  hms                    0.5.3      2020-01-08 [1]
##  htmlTable              1.13.3     2019-12-04 [2]
##  htmltools              0.5.1.1    2021-01-22 [1]
##  htmlwidgets            1.5.1      2019-10-08 [2]
##  httpuv                 1.5.2      2019-09-11 [2]
##  httr                   1.4.2      2020-07-20 [1]
##  ica                    1.0-2      2018-05-24 [2]
##  igraph                 1.2.5      2020-03-19 [1]
##  IRanges                2.20.2     2020-01-13 [2]
##  irlba                  2.3.3      2019-02-05 [2]
##  jpeg                   0.1-8.1    2019-10-24 [2]
##  jsonlite               1.7.1      2020-09-07 [1]
##  KernSmooth             2.23-16    2019-10-15 [3]
##  km.ci                  0.5-2      2009-08-30 [1]
##  KMsurv                 0.1-5      2012-12-03 [1]
##  knitr                  1.26       2019-11-12 [2]
##  labeling               0.3        2014-08-23 [2]
##  later                  1.0.0      2019-10-04 [2]
##  lattice                0.20-38    2018-11-04 [3]
##  latticeExtra           0.6-29     2019-12-19 [2]
##  lazyeval               0.2.2      2019-03-15 [2]
##  leiden                 0.3.1      2019-07-23 [2]
##  lifecycle              0.2.0      2020-03-06 [1]
##  limma                  3.42.0     2019-10-29 [2]
##  listenv                0.8.0      2019-12-05 [2]
##  lmtest                 0.9-37     2019-04-30 [2]
##  locfit                 1.5-9.4    2020-03-25 [1]
##  lsei                   1.2-0      2017-10-23 [2]
##  lubridate              1.7.9.2    2020-11-13 [1]
##  magrittr             * 2.0.1      2020-11-17 [1]
##  MASS                   7.3-51.5   2019-12-20 [3]
##  Matrix                 1.2-18     2019-11-27 [3]
##  matrixStats            0.56.0     2020-03-13 [1]
##  memoise                1.1.0      2017-04-21 [2]
##  metap                  1.2        2019-12-08 [2]
##  mime                   0.8        2019-12-19 [2]
##  mnormt                 1.5-5      2016-10-15 [2]
##  modelr                 0.1.8      2020-05-19 [1]
##  multcomp               1.4-12     2020-01-10 [2]
##  multtest               2.42.0     2019-10-29 [2]
##  munsell                0.5.0      2018-06-12 [2]
##  mutoss                 0.1-12     2017-12-04 [2]
##  mvtnorm                1.0-12     2020-01-09 [2]
##  nlme                   3.1-143    2019-12-10 [3]
##  nnet                   7.3-12     2016-02-02 [3]
##  npsurv                 0.4-0      2017-10-14 [2]
##  numDeriv               2016.8-1.1 2019-06-06 [2]
##  openxlsx               4.1.5      2020-05-06 [1]
##  org.Hs.eg.db           3.10.0     2020-01-29 [1]
##  pbapply                1.4-2      2019-08-31 [2]
##  pillar                 1.4.6      2020-07-10 [1]
##  pkgbuild               1.0.6      2019-10-09 [2]
##  pkgconfig              2.0.3      2019-09-22 [1]
##  pkgload                1.0.2      2018-10-29 [2]
##  plotly                 4.9.1      2019-11-07 [2]
##  plotrix                3.7-7      2019-12-05 [2]
##  plyr                   1.8.5      2019-12-10 [2]
##  png                    0.1-7      2013-12-03 [2]
##  prettyunits            1.1.1      2020-01-24 [1]
##  processx               3.4.2      2020-02-09 [1]
##  progeny              * 1.11.3     2020-10-22 [1]
##  promises               1.1.0      2019-10-04 [2]
##  ps                     1.3.2      2020-02-13 [1]
##  purrr                * 0.3.4      2020-04-17 [1]
##  R.methodsS3            1.7.1      2016-02-16 [2]
##  R.oo                   1.23.0     2019-11-03 [2]
##  R.utils                2.9.2      2019-12-08 [2]
##  R6                     2.4.1      2019-11-12 [1]
##  randomForest           4.6-14     2018-03-25 [1]
##  RANN                   2.6.1      2019-01-08 [2]
##  rappdirs               0.3.1      2016-03-28 [2]
##  RColorBrewer           1.1-2      2014-12-07 [2]
##  Rcpp                   1.0.4      2020-03-17 [1]
##  RcppAnnoy              0.0.16     2020-03-08 [1]
##  RcppParallel           4.4.4      2019-09-27 [2]
##  RCurl                  1.98-1.1   2020-01-19 [1]
##  Rdpack                 0.11-1     2019-12-14 [2]
##  readr                * 1.4.0      2020-10-05 [1]
##  readxl               * 1.3.1      2019-03-13 [2]
##  remotes                2.1.0      2019-06-24 [2]
##  reprex                 0.3.0      2019-05-16 [2]
##  reshape2               1.4.3      2017-12-11 [2]
##  reticulate             1.14       2019-12-17 [2]
##  rio                    0.5.16     2018-11-26 [1]
##  rlang                  0.4.8      2020-10-08 [1]
##  rmarkdown              2.0        2019-12-12 [2]
##  ROCR                   1.0-7      2015-03-26 [2]
##  rpart                  4.1-15     2019-04-12 [3]
##  rprojroot              1.3-2      2018-01-03 [2]
##  RSpectra               0.16-0     2019-12-01 [2]
##  RSQLite                2.2.0      2020-01-07 [2]
##  rstatix                0.6.0      2020-06-18 [1]
##  rstudioapi             0.11       2020-02-07 [1]
##  rsvd                   1.0.3      2020-02-17 [1]
##  Rtsne                  0.15       2018-11-10 [2]
##  rvest                  0.3.6      2020-07-25 [1]
##  S4Vectors              0.24.2     2020-01-13 [2]
##  sandwich               2.5-1      2019-04-06 [2]
##  scales                 1.1.0      2019-11-18 [2]
##  sctransform            0.2.1      2019-12-17 [2]
##  SDMTools               1.1-221.2  2019-11-30 [2]
##  sessioninfo            1.1.1      2018-11-05 [2]
##  Seurat               * 3.1.2      2019-12-12 [2]
##  shiny                  1.4.0      2019-10-10 [2]
##  shinythemes            1.1.2      2018-11-06 [1]
##  sn                     1.5-4      2019-05-14 [2]
##  stringi                1.5.3      2020-09-09 [1]
##  stringr              * 1.4.0      2019-02-10 [1]
##  SummarizedExperiment   1.16.1     2019-12-19 [2]
##  survival             * 3.1-8      2019-12-03 [3]
##  survminer            * 0.4.7      2020-05-28 [1]
##  survMisc               0.5.5      2018-07-05 [1]
##  testthat               2.3.2      2020-03-02 [1]
##  TFisher                0.2.0      2018-03-21 [2]
##  TH.data                1.0-10     2019-01-21 [2]
##  tibble               * 3.0.4      2020-10-12 [1]
##  tidyr                * 1.1.2      2020-08-27 [1]
##  tidyselect             1.1.0      2020-05-11 [1]
##  tidyverse            * 1.3.0      2019-11-21 [2]
##  tsne                   0.1-3      2016-07-15 [2]
##  usethis                1.5.1      2019-07-04 [2]
##  uwot                   0.1.5      2019-12-04 [2]
##  vctrs                  0.3.5      2020-11-17 [1]
##  viridis              * 0.5.1      2018-03-29 [2]
##  viridisLite          * 0.3.0      2018-02-01 [2]
##  withr                  2.3.0      2020-09-22 [1]
##  xfun                   0.12       2020-01-13 [2]
##  XML                    3.98-1.20  2019-06-06 [2]
##  xml2                   1.3.2      2020-04-23 [1]
##  xtable                 1.8-4      2019-04-21 [2]
##  XVector                0.26.0     2019-10-29 [2]
##  yaml                   2.2.1      2020-02-01 [1]
##  zip                    2.0.4      2019-09-01 [1]
##  zlibbioc               1.32.0     2019-10-29 [2]
##  zoo                    1.8-7      2020-01-10 [2]
##  source                                 
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  Bioconductor                           
##  Bioconductor                           
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.3)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  Bioconductor                           
##  Bioconductor                           
##  Bioconductor                           
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.3)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  Github (clauswilke/colorblindr@1ac3d4d)
##  R-Forge (R 3.6.2)                      
##  Bioconductor                           
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.3)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  Bioconductor                           
##  CRAN (R 3.6.2)                         
##  Bioconductor                           
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.3)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.3)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  Bioconductor                           
##  Bioconductor                           
##  CRAN (R 3.6.2)                         
##  Bioconductor                           
##  Bioconductor                           
##  Bioconductor                           
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  Bioconductor                           
##  CRAN (R 3.6.2)                         
##  Bioconductor                           
##  Bioconductor                           
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.3)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  Bioconductor                           
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  Bioconductor                           
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  Bioconductor                           
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  Bioconductor                           
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.3)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  Github (saezlab/progeny@94bea1c)       
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.3)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.3)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  Bioconductor                           
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.3)                         
##  CRAN (R 3.6.3)                         
##  Bioconductor                           
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.3)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  Bioconductor                           
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  Bioconductor                           
##  CRAN (R 3.6.2)                         
## 
## [1] /home/uhlitzf/R/lib
## [2] /usr/local/lib/R/site-library
## [3] /usr/local/lib/R/library